#!/usr/bin/env python
# -*- coding: utf* -*-

import httplib
import urllib2
from urllib2 import urlopen
import irclib
import ircbot

last = []
desc = []

class Bot(ircbot.SingleServerIRCBot):
    def __init__(self):
        ircbot.SingleServerIRCBot.__init__(self, [("ks38245.kimsufi.com", 6667)],
                                           "botLinkMaster", "Je suis gentil")
    def on_welcome(self, serv, ev):
        global last
        global desc
        last.append("http://google.com")
        desc.append("Dernier lien")
        serv.join("#liris")
    def on_pubmsg(self, serv, ev):
        global last
        global desc
        message = ev.arguments()[0].lower()
        if "http://" in message[0:7] or "https://" in message[0:8]:
           msg = message.split(' ',1)
           last.append(msg[0])
           if len(msg) >= 2:
               if "desc" in msg[1][0:4]:
                   desc.append(msg[1].split(' ',1)[1])
           else:
               desc.append("Dernier lien")
        if "!link" in message:
            serv.privmsg(ev.source().split("!")[0],"http://www.zeldadungeon.net/wp-content/uploads/2012/08/WW-Link.jpg")
        if "!listlink" in message[0:12]:
           test = 'true'
           index = message.split(' ',1)
           if len(index) == 2:
               num = index[1]
               for char in num:
                   if (ord(char) < 48) or (ord(char) >57):
                       test = 'false';
               if test == 'true':
                   if (index[1] != '0'):
                       if ((len(last) - int(index[1])) >=0):
                           serv.privmsg(ev.source().split('!')[0], desc[len(last)-int(index[1])] + ": " + last[len(last)-int(index[1])])
        if "!last" in message:
           serv.privmsg(ev.source().split('!')[0],desc[len(last)-1] + ": "+last[len(last)-1])
        if "!grooveshark" in message:
           serv.privmsg(ev.source().split('!')[0],"Pour le broadcast il faut aller sur le lien suivant")
           serv.privmsg(ev.source().split('!')[0], "http://grooveshark.com/#!/user/Dino/15173584/broadcast")
        if "!listhelp" in message.lower():
           serv.privmsg(ev.source().split('!')[0], "Infos sur le broadcast: !grooveshark (cf Dino pour plus d'infos)")
           serv.privmsg(ev.source().split('!')[0], "Dernier lien partagé: !last")
           serv.privmsg(ev.source().split('!')[0], "Lien dans la liste (1 étant le plus récent): !listlink num")
           serv.privmsg(ev.source().split('!')[0], "Donnez une description à votre lien: http://www.test.com [desc texte]")
    def on_privmsg(self, serv, ev):
        global last
        global desc
        message = ev.arguments()[0].lower()
        if "!link" in message:
            serv.privmsg(ev.source().split("!")[0],"http://www.zeldadungeon.net/wp-content/uploads/2012/08/WW-Link.jpg")
        if "!listlink" in message[0:12]:
           test = 'true'
           index = message.split(' ',1)
           if len(index) == 2:
               num = index[1]
               for char in num:
                   if (ord(char) < 48) or (ord(char) >57):
                       test = 'false';
               if test == 'true':
                   if (index[1] != '0'):
                       if ((len(last) - int(index[1])) >=0):
                           serv.privmsg(ev.source().split('!')[0], desc[len(last)-int(index[1])] + ": " + last[len(last)-int(index[1])])
        if "!last" in message:
            serv.privmsg(ev.source().split('!')[0],desc[len(last)-1] + ": "+last[len(last)-1])
        if "!grooveshark" in message:
            serv.privmsg(ev.source().split('!')[0],"Pour le broadcast il faut aller sur le lien suivant")
            serv.privmsg(ev.source().split('!')[0], "http://grooveshark.com/#!/user/Dino/15173584/broadcast")
        if "!listhelp" in message.lower():
            serv.privmsg(ev.source().split('!')[0], "Infos sur le broadcast: !grooveshark (cf Dino pour plus d'infos)")
            serv.privmsg(ev.source().split('!')[0], "Dernier lien partagé: !last")
            serv.privmsg(ev.source().split('!')[0], "Lien dans la liste (1 étant le plus récent): !listlink num")
            serv.privmsg(ev.source().split('!')[0], "Donnez une description à votre lien: http://www.test.com [desc texte]")
    def on_kick(self, serv, ev):
        serv.join("#liris")
 
if __name__ == "__main__":
    global last
    global desc
    Bot().start()
